#ifndef PROCESS_H
#define PROCESS_H

#ifdef USE_OPENMP
#include <omp.h>
#elif  USE_MPI
#include <mpi.h>
#elif  USE_SHMEM
#include <dislib.h>
#endif

#define NUMBER_OF_ROOT 0

class Process {
    static int numberObject;
protected:
    int rank;
    int size;
    int root;
public:
    Process(int argc = 0, char *argv[] = 0);
    ~Process();

    void barrierAll();

    int getRank();
    int getSize();

    double getTime();
};

#endif //PROCESS_H
